package com.hxzy.shop.order.dto.resp;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.DateSerializer;
import com.hxzy.shop.entity.OrderAfterSales;
import com.hxzy.shop.entity.OrderDrugUsers;
import com.hxzy.shop.entity.OrderInnerDrug;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Author rlj
 * @Date 2021/8/9 16:47
 * @Version 1.0
 */
@Data
public class OrderDetailResp implements Serializable {
    private static final long serialVersionUID = -154253476100447968L;

    @ApiModelProperty("订单id")
    private Long id;

    @ApiModelProperty("收货人姓名")
    private String consigneeName;

    @ApiModelProperty("电话")
    private String phone;

    @ApiModelProperty("省市区")
    private String provinceAndCity;

    @ApiModelProperty("详细地址")
    private String address;

    @ApiModelProperty("整体地址")
    private String detailAddress;

    @ApiModelProperty("门店名称")
    private String storeName;

    @ApiModelProperty("药品信息")
    private List<OrderInnerDrug> drug;

    @ApiModelProperty("提货码")
    private String deliveryCode;

    @ApiModelProperty("订单状态")
    private Integer orderState;

    @ApiModelProperty("实际付款")
    private BigDecimal payPrice;

    @ApiModelProperty("优惠价格")
    private BigDecimal discountPrice;

    @ApiModelProperty("订单类型")
    private Integer orderType;

    @ApiModelProperty("是否是售后订单")
    private Boolean afterSalesOrNot;

    @ApiModelProperty("订单编号")
    private String orderId;

    @ApiModelProperty("下单时间")
    @JsonSerialize(using = DateSerializer.class)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty("物流公司")
    private String orderUnit;

    @ApiModelProperty("支付时间")
    @JsonSerialize(using = DateSerializer.class)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;

    @ApiModelProperty("物流单号")
    private String logisticsId;

    @ApiModelProperty("发货时间")
    @JsonSerialize(using = DateSerializer.class)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date deliveryTime;

    @ApiModelProperty("订单备注")
    private String orderNotes;

    @ApiModelProperty("用药人信息")
    private OrderDrugUsers drugUsers;

    @ApiModelProperty("商品总价")
    private BigDecimal totalPrice;

    @ApiModelProperty("运费")
    private BigDecimal expressFreight;

    @ApiModelProperty("优惠券")
    private CouponRespS couponRespS;

    @ApiModelProperty("售后信息")
    private OrderAfterSales orderAfterSales;

    @ApiModelProperty("支付状态 1待支付 2已支付 3取消支付")
    private Integer payType;

    @ApiModelProperty("快递方式 1自提 2同城 3快递")
    private Integer pickType;

    @ApiModelProperty("收货时间")
    @JsonSerialize(using = DateSerializer.class)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date receivingTime;

    @ApiModelProperty("互联网医院类型 1 明博 2莲藕")
    private Integer hospitalType;

    @ApiModelProperty("秒杀优惠")
    private BigDecimal seckillDiscount;

    @ApiModelProperty("组合优惠")
    private BigDecimal combineDiscount;

    @ApiModelProperty("特价优惠")
    private BigDecimal limitDiscount;

    @ApiModelProperty("会员优惠")
    private BigDecimal memberDiscount;

    @ApiModelProperty("满减优惠")
    private BigDecimal fullReductionDiscount;

    @ApiModelProperty("第X件X折优惠")
    private BigDecimal fullDiscountDiscount;

    @ApiModelProperty("购物卡抵扣金额")
    private BigDecimal discountCardPrice;

    @ApiModelProperty("支付方式 1微信 2余额")
    private Integer paymentMethod;
    /**
     * 拼团id
     */
    @ApiModelProperty("拼团id")
    private Long groupBookingId;

    /**
     * 是否团长 0否 1是
     */
    @ApiModelProperty("是否团长 0否 1是")
    private Integer isSponsor;

    /**
     * 团长id
     */
    @ApiModelProperty("团长id")
    private Long sponsorId;

    /**
     * 成团状态（1未成团 2已成团 3结束）
     */
    @ApiModelProperty(" 成团状态（1未成团 2已成团 3结束)")
    private Integer clusteringStatus;

    /**
     * 订单类型
     * */
    @ApiModelProperty("订单类型（1普通订单 2拼团订单 3积分订单 4分销订单）")
    private Integer orderMold;
    @ApiModelProperty("抵扣积分")
    private Integer creditPoints;
    @ApiModelProperty("审核状态（用户自己上传处方单用）1.待审核 2已审核 3拒方")
    private Integer approvalStatus;
    @ApiModelProperty("是否赠品是true 是 false 不是")
    private  Integer gift;

    @ApiModelProperty("是否包含疫情药 false不包含 true包含 ")
    private Boolean epidemicDrug=false;

}
